const path = require('path');
module.exports = {
    // 基本路径
    publicPath: process.env.NODE_ENV === 'production' ? '' : '/',
    outputDir: process.env.NODE_ENV === 'production' ? 'dist' : 'devdist',
    // eslint-loader是否在保存的时候检查
    lintOnSave: false,
    // webpack配置
    chainWebpack: (config) => {
        const svgRule = config.module.rule("svg");
        svgRule.uses.clear();
        svgRule.use("svg-sprite-loader")
            .loader("svg-sprite-loader")
            .options({ symbolId: "icon-[name]", include: ["./src/icons/svg"] });
    },
    configureWebpack: (config) => {
        config.resolve = {
            // 自动添加文件名后缀
            extensions: [".js", ".json", ".vue"],
            // 配置解析别名
            alias: {
                "@": path.resolve(__dirname, "./src"),
                "public": path.resolve(__dirname, "./public"),
                "@c": path.resolve(__dirname, "./src/components"),
                "common": path.resolve(__dirname, "./src/common"),
                //   "api": path.resolve(__dirname, "./src/api"),
                //   "views": path.resolve(__dirname, "./src/views"),
                //   "data": path.resolve(__dirname, "./src/data"),
            },
        };
    },
    // 生产环境是否生成sourceMap文件
    productionSourceMap: false,
    // css相关配置
    css: {
        // 是否使用css分离插件ExtractTextPlugin
        extract: true,
        // 是否开启css source map
        sourceMap: false,
        // css预设置配置项
        loaderOptions: {
            sass: {
                prependData: `@import "./src/styles/main.scss";`
            }
        },
        // 启用css modules
        modules: false
    },
    parallel: require('os').cpus().length > 1,
    // PWA相关配置
    pwa: {},
    // webpack-dev-server相关配置
    devServer: {
        open: false, // 编译完成是否打开网页
        host: '0.0.0.0', // 指定使用地址，默认localhost，0.0.0.0代表可以被外界访问
        port: 8080, // 访问端口
        https: false, // 编译失败时刷新页面
        hot: true, // 开启热加载
        hotOnly: false,
        // proxy: { //配置代理
        //     "/api": {
        //         target: "http://xxx/xxx",
        //         ws: true,  //代理websockets
        //         changeOrigin: true,
        //         pathRewrite: {
        //             "^/api": ''//重写地址
        //         }
        //     }
        // },
        overlay: { // 全屏模式是否显示脚本错误
            warnings: true,
            errors: true
        },
        before: app => { }
    },
    // 第三方插件配置
    pluginOptions: {}
}
